#ifndef GENERATORINTERFACE_H
#define GENERATORINTERFACE_H

#include <QObject>
class QJsonObject;

typedef void (*GeneratorProc)(const QJsonObject &json, void *userData);

class GeneratorInterface
{
public:
    virtual ~GeneratorInterface() {}

    virtual QObject *getObject() = 0;
    virtual void setGeneratorHook(GeneratorProc proc, void *pUserData) = 0;
    virtual void setDoseValues(const double &kv, const double &ma, const double &ms, const double &mx) = 0;
    virtual void getDoseValues(double &kv, double &ma, double &ms, double &mx) const = 0;
};

#define GeneratorPlugin_iid "com.zmg.dr.plugin.generator.v100"
Q_DECLARE_INTERFACE(GeneratorInterface, GeneratorPlugin_iid)

#endif // GENERATORINTERFACE_H
